package com.lagou.rpc.api;

import java.util.List;

/**
 * @param
 * @author oyz
 * @version 1.0
 * @description: TODO 注册中心接口类,用来注册和发现Zookeeper的服务
 * @date 2022/2/27 17:57
 */
public interface RpcRegistryCenter {
    /**
     * @description: TODO 注册方法
     * @author oyz
     * @param service 注册的服务端netty
     * @param ip ip地址
     * @param port 端口
     * @date 2022/2/27 17:59
     * @version 1.0
     */
    boolean registry(String service,String ip,int port);

    /**
     * @description: TODO 发现该服务存在的那个节点
     * @author oyz
     * @param service 注册的服务
     * @date 2022/2/27 18:01
     * @version 1.0
     */
    List<String> discovery(String service);

    /**
     * @description: TODO 添加自定义的监听者
     * @author oyz
     * @param nodeChangeListener 监听者接口类,用来做watch处理
     * @date 2022/2/27 18:04
     * @version 1.0
     */
    void addListener(NodeChangeListener nodeChangeListener);

    /**
     * @description: TODO 定义销毁方法，用于清楚连接超时的节点
     * @author oyz
     * @param null
     * @date 2022/2/27 18:05
     * @version 1.0
     */
    void destroy();



}
